package com.ithooks.android.xreap.app;
import android.content.Context;
import android.support.multidex.MultiDexApplication;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.internal.bind.DateTypeAdapter;
import com.ithooks.android.xreap.BuildConfig;
import com.ithooks.android.xreap.network.http.AppApiService;
import com.ithooks.android.xreap.utils.SharedPreferencesHelper;
import com.squareup.okhttp.OkHttpClient;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import retrofit.RestAdapter;
import retrofit.client.OkClient;
import retrofit.converter.GsonConverter;
/**
* Author: ZhuWenWu
* Version V1.0
* Date: 14-11-22 13:30
* Description:
* Modification History:
* Date Author Version Description
* -----------------------------------------------------------------------------------
* 14-11-22 ZhuWenWu 1.0 1.0
* Why & What is modified:
*/
public class AppApplication extends MultiDexApplication {
private static Context sContext;
private static AppApiService sAppApiService;//API 请求Service对象
@Override
public void onCreate() {
super.onCreate();
sContext = getApplicationContext();
setUpSharedPreferencesHelper(getApplicationContext());//初始化SharedPreferences
setUpApiService();//初始化APP API
}
private void setUpApiService() {
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new DateTypeAdapter()).create();
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectTimeout(15, TimeUnit.SECONDS);
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(BuildConfig.API_HOST)
.setConverter(new GsonConverter(gson))
.setClient(new OkClient(okHttpClient))
.build();
sAppApiService = restAdapter.create(AppApiService.class);
}
/**
* 初始化SharedPreferences
*
* @param context 上下文
*/
private void setUpSharedPreferencesHelper(Context context) {
SharedPreferencesHelper.getInstance().Builder(context);
}
public static Context getContext() {
return sContext;
}
public static AppApplication getInstance() {
return (AppApplication) sContext;
}
public static AppApiService getAppApiService() {
return sAppApiService;
}
}